package rest.o.gram.location;

/**
 * Created with IntelliJ IDEA.
 * User: or_2
 * Date: 4/20/13
 */
public interface Location {

    /**
     * @return Gets last update time stamp
     */
    long getLastUpdateTimestamp();

    /**
     * @return Gets last broadcast time stamp
     */
    long getLastBroadcastTimestamp();

    /**
     * @return Gets last latitude
     */
    float getLastLat();

    /**
     * @return Gets last longitude
     */
    float getLastLong();

    /**
     * @return Gets last accuracy
     */
    int getLastAccuracy();

    /**
     * @return Gets last origin provider
     */
    String getLastOriginProvider();

    /**
     * @return true if any location data has been received since the phone last powered up.
     */
    boolean anyLocationDataReceived();

    /**
     * @return true if any location data has been broadcast since the phone last powered up.
     */
    boolean anyLocationDataBroadcast();

    /**
     * @return true if the latest location has been broadcast by the periodic broadcaster,
     *         false if a periodic broadcast is pending.
     */
    boolean hasLatestDataBeenBroadcast();

    /**
     * @return timestamp age in seconds
     */
    long getTimestampAgeInSeconds();
}
